Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC
نویسندگان
چکیده
Embedded real-time systems are tightly integrated with their physical environment. Their correctness depends both on the outputs and timeliness of computations. The increasing use multi-core processors in such is pushing embedded programmers to be parallel programming experts. However, challenging because skills, experiences, knowledge needed avoid common traps pitfalls. This article proposes ForeC synchronous multi-threaded language for deterministic, parallel, reactive multi-cores. semantics designed greatly simplify understanding debugging programs. ensures that programs can compiled efficiently execution amenable static timing analysis. ForeC’s main innovation its shared variable provides thread isolation deterministic communication. All correct by construction deadlock free no non-deterministic constructs needed. We have benchmarked our compiler several medium-sized (e.g., a 2.274-line program up 26 threads distributed 10 cores, which was based 2.155-line non-multi-threaded C program). These benchmark show achieve better performance than Esterel, widely used imperative concurrent safety-critical systems, competitive OpenMP, popular desktop solution (which implements classical multi-threading, hence intrinsically non-deterministic). also demonstrate worst-case time estimated high degree precision.
منابع مشابه
Language Constructs for Safe Parallel Programming on Multi-Cores
eects and checking are implemented in the compiler. emore speculative gradual eect checking remains to be implemented. We have also not yet completely formalized or proven the soundness of the gradual eect system. 5.5 Unlocking Eects Using eects for data race-free parallelism is conceptually very similar to using locks. Annotating a method with an eect clause eectively locks the data des...
متن کاملStructured Parallel Programming with Deterministic Patterns
Many-core processors target improved computational performance by making available various forms of architectural parallelism, including but not limited to multiple cores and vector instructions. However, approaches to parallel programming based on targeting these low-level parallel mechanisms directly leads to overly complex, non-portable, and often unscalable and unreliable code. A more struc...
متن کاملGrounding Synchronous Deterministic Concurrency in Sequential Programming
Using a new domain-theoretic characterisation we show that Berry’s constructive semantics is a conservative approximation of the recently proposed sequentially constructive (SC) model of computation. We prove that every Berry-constructive program is deterministic and deadlock-free under sequentially admissible scheduling. This gives, for the first time, a natural interpretation of Berry-constru...
متن کاملForkLight: A Control-Synchronous Parallel Programming Language
ForkLight is an imperative, task-parallel programming language for massively parallel shared memory machines. It is based on ANSI C, follows the SPMD model of parallel program execution, provides a sequentially consistent shared memory, and supports dynamically nested parallelism. While no assumptions are made on uniformity of memory access time or instruction– level synchronicity of the underl...
متن کاملParallel Programming Must Be Deterministic by Default
In today’s widely used parallel programming models, subtle programming errors can lead to unintended nondeterministic behavior and hard to catch bugs. In contrast, we argue for a parallel programming model that is deterministic by default: deterministic behavior is guaranteed unless the programmer explicitly uses nondeterministic constructs. This goal is particularly challenging for modern obje...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: ACM Transactions on Programming Languages and Systems
سال: 2023
ISSN: ['1558-4593', '0164-0925']
DOI: https://doi.org/10.1145/3591594